'use strict';
const { Controller } = require('egg');


/**
 * @Controller blog文章
 */
class BlogController extends Controller {
  /**
    * @summary 创建blog
    * @description 创建blog
    * @router post /api/blog
    * @request body createBlogRequest *body
    * @response 200 baseResponse 创建成功
    */
  async create() {
    const { ctx } = this;

    // 有效性检查
    ctx.validate(ctx.rule.createBlogRequest); // swagger 的DTO会挂载在rule上

    // 组装参数
    const payload = ctx.request.body || {};

    // 调用Service
    const res = await this.service.blog.create(payload);

    ctx.helper.success({ ctx, res });
  }

  /**
   * @summary 获取blog列表
   * @description 获取blog列表
   * @router get /api/blog
   * @request query integer *currentPage eg:1 当前页
   * @request query integer *pageSize eg:10 单页数量
   * @request query string search eg: 搜索字符串
   * @request query boolean isPaging eg:true 是否需要翻页
   * @response 200 baseResponse 创建成功
   */
  async index() {
    const { ctx, service } = this;
    // 组装参数
    const payload = ctx.query;
    // 调用 Service 进行业务处理
    const res = await service.blog.index(payload);
    // 设置响应内容和响应状态码
    ctx.helper.success({ ctx, res });
  }
}

module.exports = BlogController;
